home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / fsw / zm302 / zm302_s.lzh / DISPRSLT.HAS < prev    next >
Text File  |  1996-05-03  |  4KB  |  191 lines

  1. disprslt:                *calc_totalの結果表示
  2.     * < d2.l=zmd size
  3. reglist    reg    d0-d6/a0-a3
  4.     movem.l    reglist,-(sp)
  5.     move.l    d2,d6            *d6=size
  6.     move.l    a0,a3            *メモリ解放時に使用
  7.  
  8.     moveq.l    #1,d5            *TRACK NUMBER
  9.     lea    4*8(a0),a0        *スキップRESERVEDエリア
  10. rsltclcttl_lp:
  11.     move.l    (a0)+,d0        *get offset
  12.     bmi    exit_rsltclcttl_lp
  13.     lea    (a0,d0.l),a2
  14.  
  15.     lea    track_no+6(pc),a1    *'-TRACK'
  16.     moveq.l    #10,d0
  17. @@:
  18.     move.b    #'-',(a1)+        *'-'で埋める
  19.     dbra    d0,@b
  20.     move.l    d5,d0
  21.     bsr    num_to_str        *数値→文字列変換
  22.     lea    track_no+6(pc),a1
  23. @@:
  24.     move.b    suji-(track_no+6)(a1),d0
  25.     beq    @f
  26.     move.b    d0,(a1)+
  27.     bra    @b
  28. @@:
  29.     move.l    a2,a1
  30.     move.l    (a1)+,d0
  31.     or.l    (a1)+,d0
  32.     or.l    (a1)+,d0
  33.     or.l    (a1)+,d0
  34.     bne    @f
  35.     move.l    a1,a2            *全情報が0はそれはパターントラック
  36.     bra    rsltclcttl_lp
  37. @@:
  38.     lea    track_no(pc),a1        *'-TRACKxxx-------------------------------------'
  39.     bsr    prta1_
  40.  
  41.     lea    ttl_stp(pc),a1        *'TOTAL STEPTIME:'
  42.     bsr    clc_mes_prt2
  43.     lea    ttl_chksm(pc),a1    *'TOTAL CHECKSUM:'
  44.     bsr    clc_mes_prt
  45.     lea    ttl_msr(pc),a1        *'TOTAL MEASURE :'
  46.     bsr    clc_mes_prt        *> d1.l=number of measure
  47.     move.l    #1,d3
  48.     move.l    d1,d4
  49.     bne    @f
  50.     addq.l    #1,d5            *inc trk num
  51.     bra    rsltclcttl_lp
  52. @@:
  53.     lea    measure_no(pc),a1    *'-MEASURE'
  54.     bsr    prta1_
  55.     move.l    d3,d0
  56.     bsr    num_to_str
  57.     lea    suji(pc),a1
  58.     bsr    prta1_            *measure number
  59.     lea    dashcrlf(pc),a1
  60.     bsr    prta1_            *'-',CR,LF
  61.     lea    msr_stp(pc),a1        *TAB,'STEPTIME:'
  62.     bsr    clc_mes_prt
  63.     lea    msr_chksm(pc),a1    *TAB,'CHECKSUM:'
  64.     bsr    clc_mes_prt
  65.     addq.l    #1,d3            *inc msr num
  66.     subq.l    #1,d4            *dec rept ctr
  67.     bne    @b
  68.     addq.l    #1,d5            *inc trk num
  69.     bra    rsltclcttl_lp
  70. exit_rsltclcttl_lp:
  71.     lea    clc_ttl_header(pc),a1    *ステップタイム計算
  72.     bsr    prta1_
  73.  
  74.     move.l    d6,d0
  75.     bsr    num_to_str
  76.     move.l    a3,a2            *計算結果表示
  77.     lea    ttl_siz(pc),a1        *'TOTAL ZMD SIZE:'
  78.     bsr    prta1_
  79.     lea    suji2(pc),a1
  80.     bsr    prta1_
  81.     lea    BYTES(pc),a1
  82.     bsr    prta1_
  83.     lea    ttl_stp(pc),a1        *'TOTAL STEPTIME:'
  84.     bsr    clc_mes_prt
  85.     lea    ttl_chksm(pc),a1    *'TOTAL CEHCKSUM:'
  86.     bsr    clc_mes_prt
  87.     lea    ttl_plt+15(pc),a1    *時間文字列作成
  88.     lea    1(a2),a0
  89.     moveq.l    #3-1,d2
  90. dsp_pltmlp:
  91.     moveq.l    #0,d0
  92.     move.b    (a0)+,d0
  93.     bsr    num_to_str
  94.     move.b    suji+0(pc),d0
  95.     move.b    suji+1(pc),d1
  96.     bne    @f
  97.     move.b    #'0',(a1)+
  98.     move.b    d0,(a1)+
  99.     bra    next_dspplt
  100. @@:
  101.     move.b    d0,(a1)+
  102.     move.b    d1,(a1)+
  103. next_dspplt:
  104.     addq.w    #1,a1
  105.     dbra    d2,dsp_pltmlp
  106.     lea    ttl_plt(pc),a1        *'TOTAL PLAYTIME:'
  107.     bsr    prta1_
  108.     move.l    a3,a1            *get back addr.
  109.     bsr    free_mem        *<a1.l=mem. block addr.CALC_TOTAL結果バッファ解放
  110.     movem.l    (sp)+,reglist
  111.     rts
  112.  
  113. clc_mes_prt:
  114.     * < a1.l=message addr.
  115.     * < a2.l=value stored buffer
  116.     * > d1.l=取り出した値
  117.     * x d0-d1/a1 
  118.     bsr    prta1_
  119.     move.l    (a2)+,d1
  120.     move.l    d1,d0
  121.     bsr    num_to_str
  122.     lea    suji(pc),a1
  123.     bsr    prta1_            *print value in DEC
  124.     move.w    #'(',-(sp)        *'('
  125.     DOS    _PUTCHAR
  126.     addq.w    #2,sp
  127.     move.l    d1,d0
  128.     bsr    get_hex32
  129.     lea    suji(pc),a1
  130.     bsr    prta1_            *print value in HEX
  131.     lea    brktedcrlf(pc),a1    *')',CR,LF
  132.     bra    prta1_
  133.  
  134. clc_mes_prt2:
  135.     * < a1.l=message addr.
  136.     * < a2.l=value stored buffer
  137.     * > d1.l=取り出した値
  138.     * x d0-d1/a1 
  139.     bsr    prta1_            *タイトルメッセージ表示
  140.  
  141.     pea    (a2)
  142.     move.l    (a2)+,d0        *ループ外
  143. *    beq    @f
  144.     bsr    num_to_str
  145.     lea    suji(pc),a1
  146.     bsr    prta1_            *print value in DEC
  147.     move.w    #';',-(sp)        *';'
  148.     DOS    _PUTCHAR
  149.     addq.w    #2,sp
  150. @@:
  151.     move.l    (a2)+,d0        *ループ内
  152.     bsr    num_to_str
  153.     lea    suji(pc),a1
  154.     bsr    prta1_            *print value in DEC
  155.  
  156.     move.l    (sp)+,a2
  157.  
  158.     move.w    #'(',-(sp)        *'('
  159.     DOS    _PUTCHAR
  160.     addq.w    #2,sp
  161.     move.l    (a2)+,d0        *ループ外
  162. *    beq    @f
  163.     bsr    get_hex32
  164.     lea    suji(pc),a1
  165.     bsr    prta1_            *print value in HEX
  166.     move.w    #';',-(sp)        *';'
  167.     DOS    _PUTCHAR
  168.     addq.w    #2,sp
  169. @@:
  170.     move.l    (a2)+,d0        *ループ内
  171.     bsr    get_hex32
  172.     lea    suji(pc),a1
  173.     bsr    prta1_            *print value in HEX
  174.     lea    brktedcrlf(pc),a1    *')',CR,LF
  175.     bra    prta1_
  176.  
  177. track_no:    dc.b    '-TRACK----------------------------------------------------',13,10,0
  178. dashcrlf:    dc.b    '-',13,10,0
  179. ttl_siz:    dc.b    'TOTAL ZMD SIZE:',0
  180. ttl_stp:    dc.b    'TOTAL STEPTIME:',0
  181. ttl_chksm:    dc.b    'TOTAL CHECKSUM:',0
  182. ttl_msr:    dc.b    'TOTAL MEASURE :',0
  183. measure_no:    dc.b    '-MEASURE',0
  184. msr_stp:    dc.b    9,'STEPTIME:',0
  185. msr_chksm:    dc.b    9,'CHECKSUM:',0
  186. clc_ttl_header:    dc.b    '----------------------------------------------------------',13,10,0
  187. ttl_plt:    dc.b    'TOTAL PLAYTIME:00:00:00',13,10,0
  188. BYTES:        dc.b    ' bytes',13,10,0
  189. brktedcrlf:    dc.b    ')',13,10,0
  190.     .even
  191.